import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;

public class test_0922 {

   /* public static void print(int n){
        if(n>9){
            System.out.println(n%10);
            print(n/10);
        }else{
            System.out.println(n);
            return;
        }
    }*/

    /*public static int sum(int n){
        if(n==1){
            return 1;
        }else{
            return n+sum(n-1);
        }
    }
*/
   /* //动态数组，初始化默认是0
    int[] arr = new int[10];//定义一个大小为10的整型数组 arr是一个引用变量，简称引用 */

    //局部变量是方法中定义的变量
    //局部变量的生命周期只在方法内
    //当对象没有被指向的时候，系统会自动回收

    /*//引用
    int[] array1={1,2,3,4};
    int[] array2=array1;//引用array2指向了引用array1所指向的 对象！！类似C语言中的指针

    //null
    int[] array3=null;//表示引用array3不指向任何对象！！*/

/*    // 返回一个新的数组
    //注意：
    //引用变量不一定在栈上的
    //对象一定是在堆上的
    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    public static int[] transform(int[] arr) {
        int[] ret = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            ret[i] = arr[i] * 2;
        }
        return ret;
    }
    public static void main(String[] args) {
        *//*/递归实现：1234->4 3 2 1
        int a=1234;
        print(a);*//*

        //实现代码: 递归求 1 + 2 + 3 + ... + 10
        int m=10;
        System.out.println(sum(m));*//*
        int[] arr = {1, 2, 3};
        int[] output = transform(arr);
        printArray(output);
    }*/

    //模拟数组转字符串
   /* public static String myToString(int[] arr) {
        String ret = "[";
        for (int i = 0; i <arr.length; i++) {
            if(i== arr.length-1) {
                ret+=arr[i];
                break;
            }
            ret += arr[i] + ",";
        }
        ret += "]";
        return ret;
    }*/

    //实现查找数组中指定元素(二分查找)->注意：前提条件是有序1数组
/*
    public static int binarySearch(int[] arr,int k){
        int left=0;
        int right=arr.length-1;
        while(left<=right){
            int mid=(left+right)/2;
            if(arr[mid]<k){
                left=mid+1;
            } else if (arr[mid]>k) {
                right=mid-1;
            }else {
                return mid;
            }
        }
        return -1;
    }
*/

//public static void main(String[] args) {
    //数组转字符串
   /* int[] ret = {1,2,3,4,5};
    //借助工具 将参数的数组 按字符串进行输出
    String s = Arrays.toString(ret);//ctrl+鼠标键
    System.out.println(s);*/

    //模拟数组转字符串
    /*int[] arry={1,2,3,4};
    System.out.println(myToString(arry));*/

    //数组拷贝
    /*int[] arr={1,2,3,4,5};
    int[] copy=new int[arr.length];
    for(int i=0;i< arr.length;i++){
        copy[i]=arr[i];
    }*/
    /*int[] arr={1,2,3,4,5,6};
    //此时就相当于扩容了
    int[] copy=Arrays.copyOf(arr,arr.length*2);//拷贝数组
    System.out.println(Arrays.toString(copy));

    int[] copy2=Arrays.copyOfRange(arr,1,3);//[1.3)
    System.out.println(Arrays.toString(copy2));*/

    /*int[] arr={1,2,3,4,5,6};
    int[] copy=Arrays.copyOf(arr,arr.length);
    System.arraycopy(arr,0,copy,1,5);
    System.out.println(Arrays.toString(copy));*/

    /*//实现查找数组中指定元素(二分查找）->注意：前提条件是数组有序
    int[] array={1,2,3,4,5,6,7,8,9,35,44,67,84,99,555,666};
    int k=99;

    System.out.println(Arrays.binarySearch(array,99));*/

   /* //二维数组定义的几种方式
    int[][] arr1=new int[][]{{1,2,3}{4,5,6}};
    int[][] arr2={{1,2,3},{4,5,6}};
    int[][] arr3=new int[2][3];//0*/

    public static void main(String[] args) {
   /* //二维数组的遍历
      int[][] arr1=new int[][]{{1,2,3},{4,5,6}};
      for(int i=0;i<2;i++){
          for (int j = 0; j < 3; j++) {
              System.out.print(arr1[i][j]+" ");
          }
          System.out.println();
      }
   */


    //二维数组是特殊的一维数组
       /* int[][] arr={{1,2,3},{4,5,6}};
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println("-----------");
        System.out.println(Arrays.toString(arr[0]));
        System.out.println(Arrays.toString(arr[1]));
        System.out.println("-----------");
        System.out.println(arr[0].length);
        System.out.println(arr[1].length);
        System.out.println("-----------");
        System.out.println(arr.length);*/

        /*//遍历：优化数组的范围
        int[][] arr1=new int[][]{{1,2,3},{4,5,6}};
        for(int i=0;i<arr1.length;i++){
            for (int j = 0; j < arr1[i].length; j++) {
                System.out.print(arr1[i][j]+" ");
            }
            System.out.println();
        }*/

        /*//打印二维数组
        int[][] arr1=new int[][]{{1,2,3},{4,5,6}};
        System.out.println(Arrays.deepToString(arr1));*/

       /* //不规则的二维数组
        int[][] arr=new int[3][];//行不能省略
        arr[0]=new int[]{1,2,3};//第一行长度为3
        arr[1]=new int[]{4,5,6,7};//第二行长度为4
        System.out.println(Arrays.deepToString(arr));//深层次打印*/

       /* String a = "hello";
        String b = "world";
        String c = a + b;
        System.out.println(c);*/
        int a = 10;
        int b = 20;
        System.out.println("a = " + a + ",b = " + b);
    }
}

